package com.company.ems.dao;

import com.company.ems.model.Employee;

import java.time.LocalDate;
import java.util.List;

public interface EmployeeDAO {
    List<Employee> getAllEmployees();
    Employee getEmployeeById(int id);

    List<Employee> searchEmployeesWithPagination(String name, String department, String position,
                                                 LocalDate hireDateFrom, LocalDate hireDateTo,
                                                 int page, int recordsPerPage);

    int countSearchResults(String name, String department, String position,
                           LocalDate hireDateFrom, LocalDate hireDateTo);

    boolean addEmployee(Employee employee);
    boolean updateEmployee(Employee employee);
    boolean deleteEmployee(int id);

    List<Employee> searchEmployees(String name, String department, String position,
                                   LocalDate hireDateFrom, LocalDate hireDateTo);
}